<template>
	<div class="school">
		<h2>学校名称：{{name}}</h2>
		<h2>学校地址：{{address}}</h2>
	</div>
</template>

<script>
	//引入pubsub-js库
	import pubsub from 'pubsub-js'
	export default {
		name:'School',
		data() {
			return {
				name:'开放VueCli',
				address:'北京',
			}
		},
		//生命周期 - 挂载完成（可以访问DOM元素）
		mounted() {
			// console.log('School',this)
			// 子传父方法，全局事件总线，设置回调函数
			/* this.$bus.$on('hello',(data)=>{
				console.log('我是School组件，收到了数据',data)
			}) */

			// 子传父方法，订阅hello主题消息，设置回调函数(消息名，数据),
			// this.pubId，this是vc
			// 使用箭头函数，this向外找，this就是vc。要么使用methods下的方法函数
			this.pubId = pubsub.subscribe('hello',(msgName,data)=>{
				console.log("School组件:",this) //因为第三方库，输出this为undefind
				console.log('有人发布了hello消息，hello消息的回调执行了',msgName,data)
			})
		},
		//生命周期 - 销毁之前
		beforeDestroy() {
			// this.$bus.$off('hello')
			// 取消订阅主题消息
			pubsub.unsubscribe(this.pubId)
		},
	}
</script>

<style scoped>
	.school{
		background-color: skyblue;
		padding: 5px;
	}
</style>